home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 60 / IOPROG_60.ISO / soft / c++ / gsl-1.1.1-setup.exe / {app} / src / err / stream.c < prev    next >
Encoding:
C/C++ Source or Header  |  2000-05-05  |  1.8 KB  |  67 lines

  1. /* err/stream.c
  2.  * 
  3.  * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman, Brian Gough
  4.  * 
  5.  * This program is free software; you can redistribute it and/or modify
  6.  * it under the terms of the GNU General Public License as published by
  7.  * the Free Software Foundation; either version 2 of the License, or (at
  8.  * your option) any later version.
  9.  * 
  10.  * This program is distributed in the hope that it will be useful, but
  11.  * WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  13.  * General Public License for more details.
  14.  * 
  15.  * You should have received a copy of the GNU General Public License
  16.  * along with this program; if not, write to the Free Software
  17.  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  18.  */
  19.  
  20. #include <config.h>
  21. #include <stddef.h>
  22. #include <stdlib.h>
  23. #include <stdio.h>
  24.  
  25. #include <gsl/gsl_errno.h>
  26. #include <gsl/gsl_message.h>
  27.  
  28. FILE * gsl_stream = NULL ;
  29. gsl_stream_handler_t * gsl_stream_handler = NULL;
  30.  
  31. void
  32. gsl_stream_printf (const char *label, const char *file, int line, 
  33.            const char *reason)
  34. {
  35.   if (gsl_stream == NULL)
  36.     {
  37.       gsl_stream = stderr;
  38.     }
  39.   if (gsl_stream_handler)
  40.     {
  41.       (*gsl_stream_handler) (label, file, line, reason);
  42.       return;
  43.     }
  44.   fprintf (gsl_stream, "gsl: %s:%d: %s: %s\n", file, line, label, reason);
  45.  
  46. }
  47.  
  48. gsl_stream_handler_t *
  49. gsl_set_stream_handler (gsl_stream_handler_t * new_handler)
  50. {
  51.   gsl_stream_handler_t * previous_handler = gsl_stream_handler;
  52.   gsl_stream_handler = new_handler;
  53.   return previous_handler;
  54. }
  55.  
  56. FILE *
  57. gsl_set_stream (FILE * new_stream)
  58. {
  59.   FILE * previous_stream;
  60.   if (gsl_stream == NULL) {
  61.     gsl_stream = stderr;
  62.   }
  63.   previous_stream = gsl_stream;
  64.   gsl_stream = new_stream;
  65.   return previous_stream;
  66. }
  67.